As computer engineering and digital signal processing technology has advanced, there has been an increasing demand for cost-efficient transmission of digital information through communication networks. To meet this demand, high-speed packet-switched communication networks have been developed. The packet-switched communication network typically multiplexes different information sources into a single communication channel to maximize bandwidth utilization. For example, in a packet-switched network, computer data files, digitized voice data, and other data content are coded into transmission frames. Each data frame transmission is then transmitted to a remote device on a network medium when the channel is available.
A problem with such networks is that during peak transmission periods, the network can become congested. When the network is congested, data frames are held in queues of transmitters and switching nodes, causing delays in delivery of data frames. Traditionally, data frames are transmitted in the order they are received, first-in-first-out (FIFO), irrespective of a data frame's priority.
When data frames containing computer data files or other computer data content are delayed, the delay may be noticeable and annoying to a user waiting for a file or a web page to load. However, when the file arrives, it is just as useful and provides the same information content to the computer or the user as if it had arrived in a faster time. This can be referred to as non-time sensitive data or non-real time data, i.e., lower priority data frames.
On the other hand, data frames that contain digitized voice data representing voice communication, such a telephone call between two operators, are time sensitive or real time data, i.e., higher priority data frames. When speech is digitized, segmented, and compressed into speech frames, each data frame must arrive at the receiver within a fixed time window for the receiver to decompress and reconstruct to an analog audio signal. Network delay of time sensitive packets, such as digitized voice data, will result a broken audio signal at the receiver and/or completely unintelligible sound bursts. In either case, time sensitive data, unlike non-time sensitive data, is useless if it does not arrive on time because of congested networks. While digital audio data and digital video data are obvious examples of time sensitive data, other types of data in any transaction processing system can have varying priority requirements for network resources.
One solution to relieve network congestion and to ensure timely delivery of all data frames regardless of time sensitivity or priority is simply to increase overall network bandwidth by increasing the data rate and/or adding additional transmission lines and/or routers. However, such solution can be costly, and the additional resources are not needed during periods the network is not congested.
Another solution to ensure timely deliver of time sensitive data frames is to prioritize data frames within the queue. However, prioritizing frames within a queue does not resolve a front of line blocking problem. A front of line blocking problem occurs when, for example, the highest priority data frame (say priority 3) is retrieved from a queue and is written to a register (or other memory) for transmission in the next available time slot (e.g. interval of time available to the media access controller for transmission). At this time, that data frame is isolated from the remaining data frames left in the queue. The remaining data frames in the queue may be reprioritized with newer, incoming data frames, however, no other frames can be transmitted until that first data frame is transmitted. Hence, a higher priority data frame (say 6) which has come into the queue after the first frame was written to the register is blocked from transmitting before the lower priority data frame 3.
What is needed is a transmitter system and a method that provides for higher priority frames to be prioritized over lower priority frames which does not suffer the front of line blocking problems associated with known prioritization systems.